package org.example;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;

/**
 * 短链接服务主应用类
 * 这是Spring Boot应用的入口点
 * 包含各种配置注解，启用不同的功能模块
 * 
 * @author Your Name
 * @since 2024-07-01
 */
@SpringBootApplication  // 标识这是一个Spring Boot应用，自动配置Spring容器
@MapperScan("org.example.mapper")  // 扫描指定包下的MyBatis Mapper接口，自动注册到Spring容器
@EnableAsync  // 启用异步方法执行，支持@Async注解
@EnableScheduling  // 启用定时任务，支持@Scheduled注解
public class ShortUrlServiceApplication {

    /**
     * 应用程序主方法
     * 这是Java应用的入口点
     * 
     * @param args 命令行参数
     */
    public static void main(String[] args) {
        // 启动Spring Boot应用
        // 这会自动配置Spring容器、启动内嵌的Web服务器等
        SpringApplication.run(ShortUrlServiceApplication.class, args);
        
        // 打印启动成功信息
        System.out.println("短链接服务启动成功！");
        
        // 打印访问地址信息
        System.out.println("访问地址: http://localhost:8080");
        
        // 打印API文档地址信息
        System.out.println("API文档: http://localhost:8080/swagger-ui.html");
    }
}
